﻿using log4net.Appender;
using System.IO.Compression;

namespace log4net.Appender
{
    //public class ZipRollingFileAppender : RollingFileAppender
    //{
        //protected override void AdjustFileBeforeAppend()
        //{
        //    var currentFile = this.File;
        //    base.AdjustFileBeforeAppend();

        //    if (!currentFile.Equals(this.File))
        //    {
        //        CompressFileGzip(currentFile);
        //        var dirName = Path.GetDirectoryName(this.File);
        //        var files = Directory.GetFiles(dirName);
        //        var fileExtension = Path.GetExtension(this.File);
        //        foreach (var file in files)
        //        {
        //            if (!file.EndsWith(this.File) && file.EndsWith(fileExtension))
        //            {
        //                CompressFileGzip(file.ToString());
        //            }
        //        }
        //    }
        //}
        //private void CompressFileGzip(string fileToGzip)
        //{
        //    if (!FileExists(fileToGzip))
        //    {
        //        return;
        //    }
        //    var fileToBeGZipped = new FileInfo(fileToGzip);
        //    var gzipFileName = new FileInfo(string.Concat(fileToBeGZipped.FullName, ".gz"));

        //    using (var fileToBeZippedAsStream = fileToBeGZipped.OpenRead())
        //    {
        //        using (var gzipTargetAsStream = gzipFileName.Create())
        //        {
        //            using (var gzipStream = new GZipStream(gzipTargetAsStream, CompressionMode.Compress))
        //            {
        //                fileToBeZippedAsStream.CopyTo(gzipStream);
        //            }
        //        }
        //    }
        //    System.IO.File.Delete(fileToGzip);
        //}
    //}
}
